home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / public / SciAn / src / ScianArrays.h < prev    next >
C/C++ Source or Header  |  1994-08-01  |  2KB  |  88 lines

  1. /*ScianArrays.h
  2.   Eric Pepke
  3.   February 9, 1990
  4.   Externally available stuff for arrays.
  5. */
  6.  
  7. #ifndef SCIANARRAYS
  8. #define SCIANARRAYS
  9. /*Array type*/
  10.  
  11. typedef ObjPtr ArrayPtr;
  12.  
  13. typedef struct
  14.     {
  15.         Thing thing;        /*The thing part, containing flags*/
  16.     void *elements;        /*Pointer to the elements of the array*/
  17.         int rank;        /*The rank of the array*/
  18.         long *dims;        /*Dimensions start here--rank # of longs*/
  19.     } Array, *APtr;
  20.  
  21. #define RANK(a) (((APtr) (a)) -> rank)
  22. #define DIMS(a) (((APtr) (a)) -> dims)
  23. #define ELEMENTS(a) (((APtr) (a)) -> elements)
  24. #define ArrayMeat(ar) ((real *) ELEMENTS(ar))
  25.  
  26. typedef real threeArray[3];
  27.  
  28. /*Array types*/
  29. #define AT_REAL        1    /*Array of reals*/
  30. #define AT_OBJECT    2    /*Array of objects*/
  31. #define AT_BYTE        3    /*Array of bytes (unsigned chars)*/
  32. #define AT_POINTER    4    /*Array of random pointers*/
  33. #define AT_SHORT    5    /*Array of shorts*/
  34.  
  35. #ifdef PROTO
  36. real SearchFuzzyReal(ObjPtr array, real value);
  37. real FuzzyRealIndex(ObjPtr array, real value);
  38. ObjPtr NewRealArray(int, ...);
  39. ObjPtr NewMatrix(void);
  40. ObjPtr InterpArray(ObjPtr, ObjPtr, real);
  41. void CArray2Array();
  42. void Array2CArray();
  43. void InitArrays(void);
  44. void KillArrays(void);
  45. ObjPtr NewArray(int arrayType, int rank, long *dimensions);
  46. ObjPtr ListToArray(ObjPtr);
  47. ObjPtr SortArrayByStringVar(ObjPtr, NameTyp);
  48. ObjPtr SortArrayByIntVar(ObjPtr, NameTyp);
  49. ObjPtr SortArray(ObjPtr);
  50. ObjPtr Uniq(ObjPtr);
  51. long SearchReal(ObjPtr, real);
  52. long SearchShort(ObjPtr, short);
  53. ObjPtr InsertInArray(ObjPtr, ObjPtr, long);
  54. ObjPtr MergeRealArrays(ObjPtr, ObjPtr);
  55. ObjPtr RealArrayDeltas(ObjPtr);
  56. ObjPtr GetObjectElement(ObjPtr, long *);
  57. long SearchStringVar(ObjPtr array, NameTyp whichVar, char *value);
  58. #else
  59. real SearchFuzzyReal();
  60. real FuzzyRealIndex();
  61. ObjPtr NewRealArray();
  62. ObjPtr NewMatrix();
  63. ObjPtr InterpArray();
  64. void CArray2Array();
  65. void Array2CArray();
  66. void InitArrays();
  67. void KillArrays();
  68. ObjPtr NewArray();
  69. ObjPtr ListToArray();
  70. ObjPtr SortArrayByStringVar();
  71. ObjPtr SortArrayByIntVar();
  72. ObjPtr SortArray();
  73. ObjPtr Uniq();
  74. long SearchReal();
  75. long SearchShort();
  76. ObjPtr InsertInArray();
  77. ObjPtr MergeRealArrays();
  78. ObjPtr RealArrayDeltas();
  79. ObjPtr GetObjectElement();
  80. long SearchStringVar(ObjPtr array, NameTyp whichVar, char *value);
  81. #endif
  82.  
  83. extern ObjPtr arrayClass;
  84. extern ObjPtr objectArrayClass;
  85.  
  86. #endif
  87.  
  88.